Android L 增加在 Java 界面上和原生上對 OpenGL ES 3.1 的支援,主要有:
Compute shaders
Separate shader objects
Indirect draw commands
Multisample and stencil textures
Shading language improvements
Extensions for advanced blend modes and debugging
Backward compatibility with OpenGL ES 2.0 and 3.0
OpenGL ES 3.1 的 Java 界面是由 GLES31 提供。欲使用 OpenGL ES 3.1,要記得在 AndroidManifest.xml 中宣告:
<manifest>
<uses-feature android:glEsVersion="0x00030001" />
...
</manifest>
關於 OpenGL ES 3.1 詳細的請參考這邊。
除了 OpenGL ES 3.1 之外,這個版本另外提供一個在 Java 界面和原生上對進階影像處理功能支援的擴充包。這些擴充在 Android 中是一個簡單的 package。這個擴充包支援:
Guaranteed fragment shader support for shader storage buffers, images, and atomics (fragment shader support is optional in OpenGL ES 3.1.)
Tessellation and geometry shaders
ASTC (LDR) texture compression format
Per-sample interpolation and shading
Different blend modes for each color attachment in a frame buffer
這個擴充包的 Java 界面是由 GLES31Ext 提供。同樣,要使用一樣要在 AndroidManifest.xml 中用 <uses-feature> 宣告,但確定的屬性名稱、宣告方式尚未確定。